package org.study.springboot.designmodel.staticproxy;

/**
 * 动态代理：代理角色
 */
public class ProxyRole implements Proxy {

    //需要持有代理角色的引用
    private Proxy realityRole;

    public ProxyRole(){
    }
    public ProxyRole(Proxy role){
        this.realityRole = role;
    }

    @Override
    public void todo() {
        //在真实角色功能运行之前，代理角儿做准备工作
        doBefore();

        //执行真实角色的功能；
        realityRole.todo();

        //代理角色的首位工作
        doAfter();
    }

    private void doBefore() {
        System.out.println("准备工作");
    }
    private void doAfter() {
        System.out.println("收费工作");
    }
}
